#ifndef PROPERTIESDIALOG_H
#define PROPERTIESDIALOG_H

#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include <QStackedWidget>
#include <QListWidget>
#include <QComboBox>
#include <QLineEdit>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QVBoxLayout>

#include "bashinfo.h"
#include "geometryinfo.h"
#include "link.h"
#include "lane.h"
#include "meetingpoint.h"

class PropertiesDialog : public QWidget
{
    Q_OBJECT
public:
    explicit PropertiesDialog(QWidget *parent = nullptr);

private:
    void initUI();
    void initSignalSlot();

    QLabel *m_pLabel_ID;
    QLineEdit *m_pLineEdit_Name;
    QLabel *m_pLabel_MeetingPoint;
    QLabel *m_pLabel_Length;
    QComboBox *m_pCombox_RoadType;
    QPushButton *m_pPushBtn_BashInfo;
    QPushButton *m_pPushBtn_Lane;
    QPushButton *m_pPushBtn_Link;
    QPushButton *m_pPushBtn_GeometryInfo;
    QPushButton *m_pPushBtn_MeetingPoint;

    QStackedWidget *m_pStackedWidget;
    QListWidget *m_pListWidget;

    BashInfo        *m_pBashInfo;
    GeometryInfo    *m_pGeometryInfo;
    Lane            *m_pLane;
    Link            *m_pLink;
    MeetingPoint    *m_pMeetingPoint;
    
private slots:
    void onPushBtn_BashInfo();
    void onPushBtn_Lane();
    void onPushBtn_Link();
    void onPushBtn_GeometryInfo();
    void onPushBtn_MeetingPoint();

};

#endif // PROPERTIESDIALOG_H
